#ifndef MY_SHELL_ASSIST_FUNCTIONS_H
#define MY_SHELL_ASSIST_FUNCTIONS_H

#include <vector>
#include <string>

#include "MyShellNamespace.h"

MY_SHELL_NAMESPACE_BEGIN
// 打印信息
void printInfo();

// 开启输入输出行模式
void enableRawMode();

// 关闭输入输出行模式
void disableRowMode();

// 输入命令
std::string inputCommand();

// 依据skip拆分字符串command并存入字符串数组中
std::vector<std::string>& split(const std::string& command, char skip = ' ');

// 依据skip合并字符串数组command并存入字符串中
std::string& join(const std::vector<std::string>& command, char skip = '\n');

// 解析特殊字符串，如环境变量字符串、特殊路径字符串
std::string& parseString(const std::string& str);

// 替换字符串，可能替换为别名(或变量)也可能替换为环境变量的值
void replaceString(std::string& str);
MY_SHELL_NAMESPACE_END

#endif // ! MY_SHELL_ASSIST_FUNCTIONS_H